package com.lh.tams.dao;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.lh.tams.controller.qo.CaseQo;
import com.lh.tams.dao.base.HibernateBaseDao;
import com.lh.tams.domain.TamsDeal;
import com.lh.tams.util.DataGridModel;
import com.lh.tams.util.DateUtil;
import com.lh.tams.util.Page;
import com.lh.tams.util.Status;
/**
 * 调解处理dao
 * @author liulin
 *
 */
@Repository
public class DealDao extends HibernateBaseDao{
	@SuppressWarnings("unchecked")
	public TamsDeal getCaseDealByNo(String caseNo){
		List<Object> args=new ArrayList<Object>();
		StringBuilder hql=new StringBuilder();
		hql.append("from TamsDeal t where t.caseNo=?");
		hql.append("  order by t.isFinish,t.isOrder desc,t.caseNo desc");
		args.add(caseNo);
		Page page = super.queryForList(hql.toString(), args.toArray(), 1, 100);
		List<TamsDeal> lists = (List<TamsDeal>)page.getRows();
		if(lists.size()<1)
			return null;
		return lists.get(0);
	}
	
	public Page query(DataGridModel dgm,CaseQo caseQo,long personId){
		List<Object> args=new ArrayList<Object>();
		StringBuilder sql = new StringBuilder();
		sql.append("select distinct c.* from tams_deal c left join tams_case tc on c.case_id=tc.id_bgt left join " +
				"tams_party p on tc.case_no=p.case_no where 1=1");
		if(caseQo.getPartyNo()!=null&&!"".equals(caseQo.getPartyNo())){
			sql.append(" and p.identity_no=?");
			args.add(caseQo.getPartyNo());
		}
		if(caseQo.getPartyName()!=null&&!"".equals(caseQo.getPartyName())){
			sql.append(" and p.party_name=?");
			args.add(caseQo.getPartyName());
		}
		if(personId>0){
			sql.append(" and c.person=?");
			args.add(personId);
		}
		if(caseQo.getCaseNo()!=null&&!"".equals(caseQo.getCaseNo())){
			sql.append(" and c.case_no like ?");
			args.add("%"+caseQo.getCaseNo()+"%");
		}
		if(caseQo.getOutDept()>0){
			sql.append(" and tc.out_dept=?");
			args.add(caseQo.getOutDept());
		}
		if(caseQo.getOutPerson()>0){
			sql.append(" and tc.out_person=?");
			args.add(caseQo.getOutPerson());
		}
		if(caseQo.getAlarmName()!=null&&!"".equals(caseQo.getAlarmName())){
			sql.append(" and tc.alarm_name like ?");
			args.add("%"+caseQo.getAlarmName()+"%");
		}
		sql.append(" and c.is_finish=?");
		if(caseQo.getIsFinish()!=Status.IS_FINISH_YES){
			args.add(Status.IS_FINISH_NO);
		}else{
			args.add(Status.IS_FINISH_YES);
		}
		sql.append("  order by c.case_no desc");
		return super.queryForArray(sql.toString(), args.toArray(), dgm.getPage(), dgm.getRows());
	}
	/**
	 * 获取该案件的调解人 调解时间  调解内容 
	 * @param caseNo
	 * @return
	 */
	public String queryDealContent(String caseNo){
		String hql="from TamsDeal td where td.caseNo=?";
		List<TamsDeal> list= getHibernateTemplate().find(hql, new Object[]{caseNo});
		StringBuilder sb = new StringBuilder();
		if(list.size()>0){
			for(TamsDeal td:list){
				sb.append("调解部门:"+td.getTamsPerson().getTamsDept().getDeptName()+",调解部门电话:"+td.getTamsPerson().getTamsDept().getPhone()+"\r");
				sb.append("调解人:"+td.getTamsPerson().getPersonName()+",调解人电话:"+td.getTamsPerson().getPhone()+"\r");
				sb.append("调解开始日期:"+DateUtil.ymd(td.getBeginDate()));
				if(td.getEndDate()!=null){
					sb.append(",调解完成日期:"+DateUtil.ymd(td.getEndDate()));
				}
				//sb.append("鉴定类型:"+ti.getIdentifyType()+"\r");
				sb.append("\r");
				sb.append(td.getDealContent()==null?"":td.getDealContent());
			}
			return sb.toString();
		}else{
			return "";
		}
	}
}
